package com.chb.service;

import com.chb.model.entity.Staff;
import com.chb.model.vo.Result;
import com.chb.model.vo.StaffVo;

/**
 * @author: 陈海彬
 * @date: Created in 2023/9/25 15:25
 * @description: 员工实现层
 * @modified By:
 * @version: 1.0
 */
public interface StaffService {

    /**
     * 根据账号和密码查询用户信息
     *
     * @param name 账号
     * @param pwd  密码
     * @return 用户信息
     */
    public Result selectByNameAndPwd(String name, String pwd);

    /**
     * 查询所有员工信息
     *
     * @return
     */
    public Result findAllStaffInfo(Integer current, Integer pageSize, StaffVo staffVo);

    public Result findAllStaffInfo(Integer current, Integer pageSize);

    /**
     * 获取用户基本信息
     *
     * @return
     */
    Result getUserInfo();

    /**
     * @return com.chb.model.vo.Result
     * @create by: 张77
     * @description: 获取所有部门名称信息
     * @create time: 2023/10/7 11:04
     */
    Result getDeptment();

    /**
     * @param
     * @return
     * @create by: 张77
     * @description:获取所有状态信息
     * @create time: 2023/10/8 15:42
     */
    Result getState();

    /**
     * @param staff 员工信息
     * @return com.chb.model.vo.Result
     * @create by: 张77
     * @description: 修改员工信息
     * @create time: 2023/10/7 17:11
     */
    Result updateStaff(Staff staff);


    /**
     * @param oldPassWord 用户输入的旧密码
     * @param newPassWord 新密码
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 修改用户密码
     * @create time: 2023/10/10 9:49
     */
    Result updatePassWord(String oldPassWord, String newPassWord);

    /**
     * @param
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 退出登录
     * @create time: 2023/10/10 10:19
     */
    Result loginOut();

    /**
     * @param phone 要验证的手机号
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 发送验证码
     * @create time: 2023/10/11 12:19
     */
    Result sendValidateCode(String phone);

    /**
     * @param phone 手机号
     * @param code  验证码
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 校验登录
     * @create time: 2023/10/11 15:34
     */
    Result identityVerification(String phone, String code);


    /**
     * @param staffid 用户id
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 判断该用户是否可以被平调
     * @create time: 2023/10/12 10:34
     */
    Result transferJudgment(Integer staffid);


    /**
     * @param staff
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 确认调离
     * @create time: 2023/10/12 10:54
     */
    Result transferConfirmed(Staff staff);

    /**
     * @param phone   手机号
     * @param staffid
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 校验手机号是否重复
     * @create time: 2023/10/12 12:26
     */
    Result phoneIsReplace(String phone, Integer staffid);

    /**
     * @param staffid
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 判断用户名是否重复
     * @create time: 2023/10/12 14:49
     */
    Result staffidIsReplace(Integer staffid);

    /**
     * @param idCar
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 判断身份证是否重复
     * @create time: 2023/10/12 14:55
     */
    Result checkIdCar(String idCar);


    /**
     * @param staff
     * @return com.chb.model.vo.Result
     * @create by: 陈海彬
     * @description: 添加员工
     * @create time: 2023/10/12 15:00
     */
    Result addStaff(Staff staff);

//    /**
//     * @create by: xIAO_ZHOU
//     * @description: 调离后将原来店铺的店长branchid改为 新店的branchid
//     * @create time: 2023/10/10 11:46
//     * @param
//     * @return
//     */
//    public Integer changeManagerBranchid(Staff staff);
//    /**
//     * @create by: xIAO_ZHOU
//     * @description: 调离后将原来店铺的店长deptid改为 新店的deptid
//     * @create time: 2023/10/10 11:46
//     * @param
//     * @return
//     */
//    public Integer changeManagerDeptid(Staff staff);
    /**
    * @create by: 张77
    * @description:新增下拉框查的部门
    * @create time: 2023/10/12 19:38
     * @param
    * @return
     */
    public Result addfendAllDept();
/**
* @create by: 张77
* @description: 新增下拉框职位
* @create time: 2023/10/12 20:00
 * @param
* @return
 */
    Result addfendAllRole();
}
